package cn.itcast.bos.dao;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import cn.itcast.bos.domain.base.Courier;

/**
 * JpaRepository，2个参数
 * 参数1：操作的实体对象
 * 参数2：实体对象的主键的数据类型
 *
 */
public interface CourierRepository extends JpaRepository<Courier, Integer>,JpaSpecificationExecutor<Courier>{

	@Query(value="update Courier set deltag = '1' where id = ?")
	@Modifying
	void updateDelTag(int id);

	/**
	 * 不添加fetch：此时返回的是Object[]的数组，数组的第一个值Courier，第二个值FixedArea，不符合我们返回的List<Courier>
	 * 添加fetch：表示迫切内连接（HQL语句），返回from后面查询的对象，然后封装成实体，返回List<Courier>
	 */
	@Query(value="from Courier c inner join fetch c.fixedAreas f where f.id = ?")
	List<Courier> findAssociationCourier(String fixedAreaId);


}
